package sv.gob.mh.dgii.dao.hibernate;

import java.io.Serializable;
import java.util.List;
import sv.gob.mh.dgii.common.PagedResult;

@SuppressWarnings("unchecked")
public interface Dao {

    public void save(Object obj);

    public void saveOrUpdate(Object obj);

    public void update(Object obj);

    public List find(Object example);

    public void remove(Object obj);

    public Object findByKey(Object obj);

    public Object findById(Serializable id);

    public Object findById(Class c, Serializable id);

    public List findAll();

    public List getAll();

    public List getPage(int page, int pageSize, String sortProperty, String sortDirection);

    public PagedResult getPagedResult(int page, int pageSize, String sortProperty, String sortDirection);

    public PagedResult getPage(int page, int pageSize, String sortProperty, String sortDirection, List criterions);

    public PagedResult getPage(int page, int pageSize, String sortProperty, String sortDirection, Object sample);

    public Number getAllCount();

    public List getByExample(Object xample);

    public void synchronize();

    public void merge(Object obj);
}//class
